package thread01;

import java.util.Scanner;

/**
 * Thread提供了一个静态方法：
 * static void sleep(long ms)
 * 可以使执行这个方法的线程进入阻塞状态指定毫秒，超时后线程会自动回到RUNNABLE状态再次并发执行
 */
public class SleepDemo {
    public static void main(String[] args) {
        /*
        实现建议的倒计时程序
        程序启动后在控制台上输入一个数字，然后从该数字开始每秒递减，到0时输出"时间到"，然后程序结束
         */
        System.out.println("请输入一个数字");
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        /*Scanner那两句话的另一种写法
        BufferedReader br = new BufferedReader(
                new InputStreamReader(System.in)
        );
        String line = br.readLine(); //读取一行字符串
        int num = Integer.parseInt(line); //将字符串转换为整数
        */
        System.out.println("程序开始了");
        for(;num>0;num--){ //倒着输出写法相对简便
            System.out.println(num);
            try {
                Thread.sleep(1000); //主线程执行时会阻塞1秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        /*
        for(int i=0;i<=num;i++){ //正着输出
            System.out.println(num-i);
            try {
                Thread.sleep(1000); //主线程执行时会阻塞1秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
         */
        System.out.println("时间到");
        System.out.println("程序结束了");
    }
}
